package br.ufpe.cin.rgms.membro.controle;

import java.util.HashMap;
import java.util.List;

import br.ufpe.cin.rgms.base.Controle;
import br.ufpe.cin.rgms.base.Persistence;
import br.ufpe.cin.rgms.base.RGMSException;
import br.ufpe.cin.rgms.membro.modelo.Estudante;
import br.ufpe.cin.rgms.membro.modelo.Membro;
import br.ufpe.cin.rgms.membro.persistencia.DaoMembro;
import br.ufpe.cin.rgms.util.Properties;

public class ControleMembro extends Controle<Membro,DaoMembro> {

	public ControleMembro() {
		super(new DaoMembro());
	}

	public Membro getUsuario(String email) {
		Persistence.getInstance().beginTransaction();

		Membro retorno =  this.dao.getUsuario(email);
		
		DaoMembro daoMembro =  this.dao;

		Persistence.getInstance().commit();

		return retorno;
	}

	/**
	 * Airton
	 * @param email
	 * @return
	 */
	public List<Membro>  getUsuarios(String nome, String sobrenome) {
		Persistence.getInstance().beginTransaction();
		List<Membro> retorno =  this.dao.getUsuarios(nome, sobrenome);
		Persistence.getInstance().commit();
		
		return retorno;
	}

	protected void validar(Membro objeto) throws RGMSException {
		if (objeto.hasDadosIncompletos()) {
			throw new RGMSException(Properties.getProperty(null,"dados_incompletos"));	
		}
	}

	
	public List<Membro> getMembros(HashMap<String, String> formfields) {
		Persistence.getInstance().beginTransaction();

		List<Membro> retorno =  this.dao.getElementos(formfields);

		Persistence.getInstance().commit();

		return retorno;
	}
}
